import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
x = np.linspace(0,2*np.pi,1024)
plt.plot(x, np.sin(x))
seaborn を import し、 set_theme
関数を呼ぶとスタイルが適用されます。
import seaborn as sns
sns.set_theme()
plt.plot(x, np.sin(x))
他のスタイルも適用できます。
sns.set_style("whitegrid")
plt.plot(x, np.sin(x))
Seaborn は pandas と連携することで真価をみせます。
さきほどの人口データです。
import pandas as pd
df = pd.read_csv("c02.csv", encoding="utf-8")
df
自動的にフィッティングを行わせます。ラベルも自動でつきます。
sns.lmplot(x="year", y="population", hue='prefecturecode', order=2, data=df)
1920 年の県別人口と、2000年の県別人口がどのように相関しているか調べたいとします。 これにはpairplotが使えます。
まず、Dataframe を少し変換して、県 × 各年の人口の表の形式にします。
# 都道府県のみ・特定の年数に絞るため filter する
years = [1920, 1960, 2000]
df_only_prefecture = df[df.prefecturecode.isin([f'{i:02}' for i in range (1, 48)]) & df.year.isin(years)]
# pivot_table を使うと値を列に変換できる
df_table = df_only_prefecture.pivot_table(values='population', index=['prefecturecode', 'prefecture'], columns='year')
df_table.head(10)
sns.pairplot(df_table[[1920, 1960, 2000]])